﻿using System.Collections.Generic;

using AMC.SubstitutionCache.Rendering;
using AMC.SubstitutionCache.Services;

using Orchard.ContentManagement.Drivers;

namespace AMC.SubstitutionCache.Drivers
{
    /// <summary>
    /// Interface implemented by all SubstitutionDriver's
    /// </summary>
    public interface ISubstitutionDriver : IContentPartDriver
    {
        IEnumerable<SubstitutionDriverRenderingInfo> HandledShapes { get; }

        /// <summary>
        /// returns Caching information regarding the current replacement cache context. If CacheKey is null or empty, substitution output will not be cached.
        /// </summary>
        SubstitutionCacheInfo GetCacheInfo(SubstitutionContext context);
    }
}